package 剑指offer;

import java.util.Arrays;

public class p58_I翻转单词顺序 {
    public String reverseWords1(String s) {
        //利用 “字符串分割split ”、“列表倒序” 的内置函数 （面试时不建议使用）

        String[] strings = s.trim().split(" ");//String中的 trim()方法用于 删除字符串的头尾空白符
        StringBuilder res=new StringBuilder();

        for (int i=strings.length-1;i>=0;i--) {
            if (strings[i].equals("")){
                //当字符串之间的空格>1时，经过split()会有留下 两个空格之间的空字符串存到数组中，以空串""(空单词)的形式存在，而不是" "空格的形式
                continue;
            }
            res.append(strings[i]+" ");
        }
        return res.toString().trim();// trim()用来删除最后一个元素多加的一个 " "
    }

    public String reverseWords(String s) {
        //双指针
        s.trim();//去掉字符串首尾的空格
        int j=s.length()-1;
        int i=j;//两个指开始都指向最后一个字符
        StringBuilder res=new StringBuilder();

        while (i>=0) {
            while (i>=0 && s.charAt(i)!=' ') {
                i--;//让 i指针从后往前找到第一个空格
            }
            //遇到第一个空格
            res.append(s.substring(i+1,j+1)+' ');  //substring 左闭右开
            while (i>=0 && s.charAt(i)==' ') {
                i--;//让 i指针从后往前跳过空格
            }
            j=i;
        }
        return res.toString().trim();
    }


    public static void main(String[] args) {
        String s="s  j";
        String[] s1 = s.split(" ");
        System.out.println(s1[1].equals(" "));
        System.out.println(s1[1].length());
        System.out.println(Arrays.toString(s1));
    }
}
